#include "family.h"

// 给某成员添加孩子
// void FamilyTree::addChild(FamilyMember *parent, FamilyMember *child)
// {
//     parent->children.push_back(child);
//     // 设置父母的名字
//     if (parent->isMarried)
//     {
//         child->fatherName = parent->name; // 假设父亲是已婚的
//         child->motherName = "";           // 这里可以根据需要设置母亲的名字
//     }
//     else
//     {
//         child->fatherName = parent->name; // 如果父亲未婚，仍然设置父亲的名字
//         child->motherName = "";           // 这里可以根据需要设置母亲的名字
//     }
// }
void FamilyTree::addChild(FamilyMember *father, FamilyMember *mother, FamilyMember *child)
{
    if (father == nullptr)
    {
        std::cerr << "父亲成员不存在，无法添加孩子。" << std::endl;
        return;
    }

    father->children.push_back(child);
    child->fatherName = father->name;

    if (mother != nullptr)
    {
        child->motherName = mother->name;
    }

    // 如果需要，可以在这里处理母亲的逻辑
    // 例如，将孩子添加到母亲的children列表中
    if (mother != nullptr)
    {
        mother->children.push_back(child);
    }
}